iT邦幫忙

2022 iThome 鐵人賽

DAY 10
0
Software Development

大學耍廢的我要學Java翻身系列 第 10

Day10: Java的物件導向程式

  • 分享至 

  • xImage
  •  

物件導向程式

在說到物件導向程式之前,我們要先認識物件和類別

類別 => 藍圖、範本,ex: 屬性:身高、體重、方法:吃飯

類別是定義物件的一種型態,沒有實體,裡面有定義好的屬性和方法,大略分為方法、類別方法和建構子

物件 => 實體物品,ex: 狗、貓、車...

物件就是某一類別的實體

class Student{
    public String name;
    public String getName(){
        return this.name;
    }
    public void setName(String name){
        this.name = name;
    }
}

public class Main{
    public static void main(String[] agrs){
        Student Peter = new Student();  // 物件
        Peter.setName("Peter");
        System.out.println(Peter.getName());

    }
}

然而我們所謂的物件導向程式設計就是去提高我們軟體的重用性、靈活性和擴充性,還有讓程式間可以互相存取相關的資料,其實就和前一天說到的方法一樣,有些功能可以重複利用,所以我們就去建立可以重複利用到的零件,等我們要用到的時候就可以省很多力
同時還有低耦合性,物件本身可以自由修改與變化,而且不影響其他物件本身的功能和運作

建構子(建構方法,沒有回傳值的方法)

  1. 建構物件的同時,可以初始化一些我們必須的資訊
  2. 建構子名和類別名相同
  3. 可以被重載(Overloading)
class Student{
    public Student(){
    }
    public Student(String name){
    }
}

This => 參考物件本身

this()表示呼叫物件的建構子

class Student{
    public String name;
    public setName(String name){
        this.name = "Max";   // this的name是指上面的name設定為setName方法參數的name
    }
}

Static => 靜態區塊

  1. 載入類別時進行初始化動作
  2. 只執行一次
  3. 被宣告為statc的成員不屬於物件,屬於類別
class Student{
    public String name;
    static {
        System.out.println("Run static block")  // 只會列印出一次
    }
}
public class Main{
    public static void main(String[] agrs){
        Student Peter = new Student();  // 物件
        Student Max = new Student();  // 物件
        Student Steven = new Student();  // 物件
    }
}

上一篇
Day9: 讓程式更簡單的「方法」
下一篇
Day11: Java物件導向: 繼承、多型、抽象
系列文
大學耍廢的我要學Java翻身30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言